﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace SharedGenomics.Workbench.Core
{
    public interface IEventBroker
    {
        void Publish<T>(T message) where T : class;
        void Subscribe<T>(IEventSubscriber<T> subscriber) where T : class;
        void SubscribeAll(object subscriber);
        void Subscribe(Type eventType, object subscriber);
        void Unsubscribe<T>(IEventSubscriber<T> subscriber) where T : class;
        void UnsubscribeAll(object subscriber);
    }
}
